#pragma once
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <fstream>
#include <cstdlib>
#include <string>
#include <cstdio>
#include <cmath>
#include <QString>
#include <QUuid>
#include <QDate>
#include <iostream>
#include "ConstDataType.h"
#include <QString>

#define MAX_DATA 1024  //使用数组队列时的最大缓冲区
#define WORK_QUEUE 30  //合约更新的工作线程数 Dafault:50

class KLineType{

public:
    KLineType(){
        PreBusinessAmount = 0;  //记录上一根K线的成交量
        PreOpenInterest   = 0;  //记录上一根K线的持仓量
    }
   double OpenPrice;
   double ClosePrice;
   double MaxPrice;
   double MinPrice;
   double PreClosePrice;         //上一个K线的收盘价
   bool   bUpdateFlg;

   long   PreBusinessAmount;             //记录上一根K线的成交量
   long   StartVolume;           //记录K线开始时的成交量
   long   EndVolume;             //记录K线结束时的成交量

   long   PreOpenInterest;       //记录上一根K线的持仓量
   long   OpenInterest;          //记录K线的持仓量
};

class ContractType{
public:
  QString contractCode;
  QString futuExchType;
  QString contractType;
};


class CComFun
{
public:
    CComFun(void);
    ~CComFun(void);

    static long RandomNum( long N );//生成0到N之间的随机数
    static void SleepSecs(int iSec);
};
